package com.ethink.warehouse.api.info;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 物流跟进单 INFO实体
 *
 * @author default
 * @date 2022-12-19
 */
@Data
public class LogisticsTraceOrderInfo {

    @Schema(description ="主键")
    private Long id;

    @Schema(description ="物流单号")
    private String orderNo;

    @Schema(description ="枚举 订单状态:1-准备(s1)|2-待处理(s2)|3-完成(s3)")
    private Integer orderStatus;

    @Schema(description ="原始订单类型")
    private String sourceOrderType;

    @Schema(description ="流程状态")
    private String stepStatus;

    @Schema(description ="流程类型")
    private String stepType;

    @Schema(description ="业务配置")
    private String bizConfig;

    @Schema(description ="枚举 始发主体类型:1-供应商(t1)|2-客户(t2)|3-分仓(t3)")
    private Integer sourceEntityType;

    @Schema(description ="始发仓编码")
    private String sourceWarehouseCode;

    @Schema(description ="始发仓名称")
    private String sourceWarehouseName;

    @Schema(description ="目的仓编码")
    private String targetWarehouseCode;

    @Schema(description ="目的仓名称")
    private String targetWarehouseName;

    @Schema(description ="枚举 目的主体类型:1-供应商(t1)|2-客户(t2)|3-分仓(t3)")
    private Integer targetEntityType;

    @Schema(description ="枚举 运输方:1-我方(t1)|2-供应商(t2)|3-客户(t3)|4-虚拟(t4)")
    private Integer transportEntity;

    @Schema(description ="创建人账号")
    private String createUserCode;

    @Schema(description ="创建人名称")
    private String createUserName;

    @Schema(description ="提单号")
    private String takeOrderNo;

    @Schema(description ="始发国")
    private String sourceCountry;

    @Schema(description ="始发港")
    private String sourcePort;

    @Schema(description ="目的国")
    private String targetCountry;

    @Schema(description ="目的港")
    private String targetPort;

    @Schema(description ="货代物流")
    private String expressCompany;

    @Schema(description ="运输方式")
    private String transportModel;

    @Schema(description ="运输费用")
    private BigDecimal transportCostAmt;

    @Schema(description ="送货模式")
    private String deliveryModel;

    @Schema(description ="托")
    private String torr;

    @Schema(description ="箱")
    private String box;

    @Schema(description ="打托资料附件")
    private String packageFileId;

    @Schema(description ="预计发货日期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date expireFhTime;

    @Schema(description ="实际发货日期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date actualFhTime;

    @Schema(description ="预计到港日期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date expireDgTime;

    @Schema(description ="实际到港日期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date actualDgTime;

    @Schema(description ="预计到仓日期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date expireDcTime;

    @Schema(description ="实际到仓日期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date actualDcTime;

    @Schema(description ="实际理货日期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date actualLhTime;

    @Schema(description ="实际上架日期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date actualSjTime;

    @Schema(description ="附件文件ID")
    private String fileId;

    @Schema(description ="理货报告附件")
    private String confirmFileId;

    @Schema(description ="流程ID")
    private String flowId;

    @Schema(description ="数据删除标志(0-正常,1-删除)")
    private Integer isDeleted;

    @Schema(description ="数据创建时间戳")
    private Date createTime;

    @Schema(description ="数据更新时间戳")
    private Date updateTime;

    @Schema(description ="创建人")
    private String createUser;

    @Schema(description ="修改人")
    private String updateUser;

    @Schema(description ="备注信息")
    private String remark;

    /** 额外信息 **/
    @Schema(description ="打托资料附件URL")
    private String packageFileUrl;

    @Schema(description ="理货报告附件URL")
    private String confirmFileUrl;

}
